home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue25 / hipsquar / F_MAIN.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1997-06-07  |  3.2 KB  |  140 lines

  1. {*********************************************************}
  2. {                                                         }
  3. {     Creating Non-Rectangular Windows                    }
  4. {                                                         }
  5. {     Requires Win32 API (Delphi 2.0 or 3.0 or newer)     }
  6. {                                                         }
  7. {     Copyright ⌐ 1997 Steven J. Colagiovanni             }
  8. {                                                         }
  9. {*********************************************************}
  10.  
  11. unit F_Main;
  12.  
  13. interface
  14.  
  15. uses     
  16.     Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  17.     StdCtrls;
  18.  
  19. type
  20.     TfrmMain = class(TForm)
  21.         Button1: TButton;
  22.         Button2: TButton;
  23.         Button3: TButton;
  24.         Button4: TButton;
  25.         Button5: TButton;
  26.         Button6: TButton;
  27.         Button7: TButton;
  28.         Label1: TLabel;
  29.     Label2: TLabel;
  30.         procedure FormCreate(Sender: TObject);
  31.         procedure FormActivate(Sender: TObject);
  32.         procedure Button1Click(Sender: TObject);
  33.         procedure Button2Click(Sender: TObject);
  34.         procedure Button3Click(Sender: TObject);
  35.         procedure Button4Click(Sender: TObject);
  36.         procedure Button5Click(Sender: TObject);
  37.         procedure Button6Click(Sender: TObject);
  38.         procedure Button7Click(Sender: TObject);
  39.         procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  40.         procedure FormClose(Sender: TObject; var Action: TCloseAction);
  41.     private
  42.         { Private declarations }
  43.         Loading: Boolean;
  44.     public
  45.         { Public declarations }
  46.     end;
  47.  
  48. var
  49.     frmMain: TfrmMain;
  50.  
  51. implementation
  52.  
  53. {$R *.DFM}
  54.  
  55. uses
  56.     Ellipse, BowTie, Aperture, HourGlas, Text, Delphi;
  57.  
  58. procedure TfrmMain.FormCreate(Sender: TObject);
  59. begin
  60.     Screen.Cursor := crHourglass;
  61.     Loading := True;        // Used by FormActivate event
  62.     Left := 5;
  63.     Top := 5;
  64. end;
  65.  
  66. procedure TfrmMain.FormActivate(Sender: TObject);
  67. begin
  68.     { Chect to see if form is loading. If not loading, then
  69.         the form was only activated. In that case, no need to
  70.         pause the program for 5 seconds. }
  71.     If Loading then
  72.     begin
  73.         { Wait 5 seconds after form is displayed, then
  74.             close splash screen }
  75.         Sleep(5000);        // pause program for 5 seconds (5000 milliseconds)
  76.         frmText.Close;
  77.         Loading := False;
  78.         Screen.Cursor := crDefault;
  79.     end;
  80. end;
  81.  
  82. procedure TfrmMain.Button1Click(Sender: TObject);
  83. begin
  84.     frmEllipse.Show;
  85. end;
  86.  
  87. procedure TfrmMain.Button2Click(Sender: TObject);
  88. begin
  89.     frmBowTie.Show;
  90. end;
  91.  
  92. procedure TfrmMain.Button3Click(Sender: TObject);
  93. begin
  94.     Close;
  95. end;
  96.  
  97. procedure TfrmMain.Button4Click(Sender: TObject);
  98. begin
  99.     frmAperture.Show;
  100. end;
  101.  
  102. procedure TfrmMain.Button5Click(Sender: TObject);
  103. begin
  104.     frmHourGlass.Show;
  105. end;
  106.  
  107. procedure TfrmMain.Button6Click(Sender: TObject);
  108. begin
  109.     frmText.Show;
  110. end;
  111.  
  112. procedure TfrmMain.Button7Click(Sender: TObject);
  113. begin
  114.     frmDelphi.Show;
  115. end;
  116.  
  117. procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  118. begin
  119.     { just in case any of the windows are displayed,
  120.         let's close each one and free the resources for each window. }
  121.     frmEllipse.free;
  122.  
  123.     frmBowTie.free;
  124.  
  125.     frmAperture.free;
  126.  
  127.     frmHourGlass.free;
  128.  
  129.     frmText.free;
  130.  
  131.     frmDelphi.Free;
  132. end;
  133.  
  134. procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
  135. begin
  136.     Action := caFree;
  137. end;
  138.  
  139. end.
  140.